home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Power 1997 December
/
MACPOWER-1997-12.ISO.7z
/
MACPOWER-1997-12.ISO
/
AMUG
/
PROGRAMMING
/
Raven 1.2.sit
/
Raven 1.2
/
Source
/
Foundation
/
Common
/
ZUnitTest.h
< prev
next >
Wrap
Text File
|
1997-08-07
|
3KB
|
122 lines
/*
* File: ZUnitTest.h
* Summary: Singleton that keeps pointers to test functions.
* Written by: Jesse Jones
*
* Copyright ゥ 1996-1997 Jesse Jones.
* For conditions of distribution and use, see copyright notice in ZTypes.h
*
* Change History (most recent first):
*
* <2> 6/20/97 JDJ Renamed TUnitTest TUnitTests.
* <1> 6/29/96 JDJ Created
*/
#pragma once
#include <Types.h>
#include <String>
#include <ZConstants.h>
#include <ZTypes.h>
#if DEBUG
//-----------------------------------
// Forward References
//
class ZUnitTestSet;
//-----------------------------------
// Types
//
typedef void (*TestProc)();
// ===================================================================================
// struct SUnitTest
// ===================================================================================
struct SUnitTest {
string name;
TestProc test;
SUnitTest() {name = ""; test = nil;}
SUnitTest(const string& text) {name = text; test = nil;}
SUnitTest(const string& text, TestProc func) {name = text; test = func;}
bool operator==(const SUnitTest& rhs) const {return name == rhs.name;}
bool operator<(const SUnitTest& rhs) const {return name < rhs.name;}
};
// ===================================================================================
// class TUnitTests
// ===================================================================================
class TUnitTests {
//-----------------------------------
// Initialization/Destruction
//
public:
~TUnitTests();
static TUnitTests* Instance();
protected:
TUnitTests();
private:
TUnitTests(const TUnitTests& rhs);
TUnitTests& operator=(const TUnitTests& rhs);
//-----------------------------------
// API
//
public:
void AddTest(const string& name, TestProc test);
bool IsTest(const string& name) const;
ulong GetCount() const;
void DoTest(const string& name);
void DoAllTests();
void ResetCursor();
SUnitTest GetNextTest();
bool CursorAtEnd() const;
//-----------------------------------
// Member data
//
protected:
ZUnitTestSet* mTests;
};
// ===================================================================================
// class TUnitTestRegistrar
// You can declare a static object of this type in your file to automatically
// register your test.
// ===================================================================================
class TUnitTestRegistrar {
public:
~TUnitTestRegistrar();
TUnitTestRegistrar(const string& name, TestProc test);
};
#endif // DEBUG